Batch Script এ সরাসরি try-catch
ব্লক যেমন আপনি অন্যান্য প্রোগ্রামিং ভাষায় যেমন C# বা Java এ দেখতে পান, তা ব্যবহার করা যায় না। তবে, Batch Script এ Error Handling করা সম্ভব এবং কিছু কমান্ডের মাধ্যমে আপনি ত্রুটি শনাক্ত এবং পরিচালনা করতে পারেন। Batch Script এ Error Handling করার জন্য সাধারণত ErrorLevel
এবং IF
কন্ডিশন ব্যবহার করা হয়। এখানে, আমরা try-catch
এর মতো ত্রুটি পরিচালনার কিছু কৌশল আলোচনা করব, যা Batch Script এর সাথে কাজ করতে সাহায্য করবে।
Batch Script এ কোনো কমান্ড চালানোর পর তার ফলাফল বা স্ট্যাটাস কোড (Exit Code) দেখার জন্য ErrorLevel
ব্যবহার করা হয়। ErrorLevel
এর মান অনুযায়ী আপনি ত্রুটি চেক করতে পারেন এবং সেই অনুযায়ী স্ক্রিপ্টের আচরণ পরিবর্তন করতে পারেন।
ErrorLevel কী?
ErrorLevel
হল একটি স্ট্যাটাস কোড যা সাধারণত কোনো কমান্ডের সফলতা বা ব্যর্থতার তথ্য প্রদান করে:
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% neq 0 (
echo Error occurred during file copy.
) else (
echo File copied successfully.
)
এখানে:
copy
কমান্ডটি চালানোর পর %errorlevel%
চেক করা হচ্ছে।ErrorLevel
0 না হয় (অর্থাৎ, যদি কোনো ত্রুটি ঘটে), তবে Error occurred during file copy
মেসেজটি প্রদর্শিত হবে।File copied successfully
মেসেজটি দেখানো হবে।কিছু পরিস্থিতিতে, আপনি নির্দিষ্ট ত্রুটি কোড চেক করতে চাইলে, ErrorLevel
এর বিভিন্ন মানের সাথে কাজ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি জানেন যে কোনো নির্দিষ্ট কমান্ড 1 বা 2 এর মধ্যে কোনো ত্রুটি সৃষ্টি করবে, তাহলে আপনি সেগুলোকেও চেক করতে পারেন।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% == 1 (
echo File not found.
) else if %errorlevel% == 2 (
echo Access denied.
) else if %errorlevel% neq 0 (
echo Unknown error occurred.
) else (
echo File copied successfully.
)
এখানে:
ErrorLevel
1 হয়, তা হলে File not found
মেসেজটি দেখানো হবে।ErrorLevel
2 হয়, তা হলে Access denied
মেসেজটি প্রদর্শিত হবে।ErrorLevel
থাকলে Unknown error occurred
মেসেজটি দেখানো হবে।ErrorLevel
0 থাকে, তবে File copied successfully
মেসেজটি প্রদর্শিত হবে।Batch Script এ ত্রুটি পরিচালনার জন্য goto
কমান্ডও ব্যবহার করা যেতে পারে। goto
ব্যবহার করে আপনি একটি নির্দিষ্ট লেবেলে চলে যেতে পারেন যদি কোনো ত্রুটি ঘটতে থাকে, যাতে পরবর্তী কমান্ডগুলো এক্সিকিউট না হয় বা আপনি ত্রুটির পরবর্তী পদক্ষেপ নিতে পারেন।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% neq 0 goto ErrorHandler
echo File copied successfully.
goto End
:ErrorHandler
echo Error occurred during file copy.
goto End
:End
এখানে:
copy
কমান্ডে ত্রুটি ঘটে, তাহলে স্ক্রিপ্টটি ErrorHandler
লেবেলে চলে যাবে এবং ত্রুটির মেসেজ প্রদর্শন করবে।File copied successfully
মেসেজটি প্রদর্শিত হবে।ত্রুটির লগ তৈরি করার জন্য Batch Script এ আপনি সহজেই ত্রুটির তথ্য একটি টেক্সট ফাইলে সংরক্ষণ করতে পারেন। এটি মূলত স্ক্রিপ্টের ডিবাগিং এবং ত্রুটি শনাক্তকরণে সাহায্য করে।
উদাহরণ:
@echo off
echo Trying to copy file...
copy C:\source.txt D:\destination.txt
if %errorlevel% neq 0 (
echo Error occurred at %date% %time%: Error level %errorlevel% >> C:\error_log.txt
echo Error occurred. Check error_log.txt for details.
) else (
echo File copied successfully.
)
এখানে:
ErrorLevel
সহ একটি লগ ফাইল (C:\error_log.txt
) তৈরি হবে।>>
অপারেটর ব্যবহার করে লগ ফাইলে নতুন ত্রুটি যুক্ত করতে পারেন।Batch Script এ ত্রুটি পরিচালনা করার জন্য সরাসরি try-catch
ব্লক নেই, তবে ErrorLevel
এবং if
কন্ডিশন ব্যবহার করে আপনি কার্যকরভাবে ত্রুটি পরিচালনা করতে পারেন। তবে, এর কিছু সীমাবদ্ধতা রয়েছে:
Batch Script এ সরাসরি try-catch
ব্যবহার করা সম্ভব না হলেও, ErrorLevel
এবং if
কন্ডিশনের মাধ্যমে ত্রুটি পরিচালনা করা সম্ভব। আপনি বিভিন্ন ত্রুটি কোডের উপর ভিত্তি করে নির্দিষ্ট পদক্ষেপ নিতে পারেন, যেমন ফাইল কপি করতে ব্যর্থ হলে একটি লগ তৈরি করা বা স্ক্রিপ্টটি বন্ধ করে দেওয়া। goto
কমান্ডের মাধ্যমে আপনি ত্রুটির পরবর্তী প্রক্রিয়াও নির্ধারণ করতে পারেন, যাতে স্ক্রিপ্টটি আরও স্থিতিশীল এবং কার্যকর হয়।
common.read_more